﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using clBUS;
using clEntidad;
using clEntidad.Ex;

namespace portero_
{
    public partial class frmIngresoVehiculo : Form
    {
        public frmIngresoVehiculo()
        {
            InitializeComponent();
        }

        private void tsbSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void tbPlaca_Validated(object sender, EventArgs e)
        {
            //
        }

        private void tbPlaca_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }
        private int id;
        private void buscarVehiculo(){
            BUSVehiculo objBUS = new BUSVehiculo(Constantes.CADENA_BD);
            Vehiculo vehiculo = objBUS.get (tbCodigo.Text.Trim());
            if (vehiculo != null)
            {
                tbMarcaVehiculo.Text = vehiculo.marca;
                tbNumDoc.Text = vehiculo.numDoc;
                chbParticular.Enabled = false;
                if (vehiculo.tipo.Equals("C"))
                {
                    chbParticular.Checked = true;
                    chbParticular.Checked = false;
                    rbCorporativo.Checked = true;
                    if (vehiculo.llantaRpto == 1)
                    {
                        chbLlantaRpto.Checked = true;
                    }
                    else
                    {
                        chbLlantaRpto.Checked = false;
                    }
                    if (vehiculo.escaleraGrande == 1)
                    {
                        chbEscaleraG.Checked = true;
                    }
                    else
                    {
                        chbEscaleraG.Checked = false;
                    }
                    if (vehiculo.escaleraChica == 1)
                    {
                        chbEscaleraC.Checked = true;
                    }
                    else
                    {
                        chbEscaleraC.Checked = false;
                    }
                    tbKiloS.Text = vehiculo.ultimoKilometraje.ToString();
                    chbEscaleraC.Visible = true;
                    chbEscaleraG.Visible = true;
                    chbLlantaRpto.Visible = true;
                    lbKiloI.Visible = false;
                    tbKiloE.Visible = false;
                    tbKiloS.Visible = true;
                    tbPlaca.Text = vehiculo.placa;

                    if (vehiculo.estado == "S")
                    {
                        //Regreso de vehiculo corporativo  (propio)
                        rbCorporativo.Enabled = false;
                        rbParticular.Enabled = false;
                        rbVisita.Enabled = false;

                        tbObservRev.ReadOnly = false;

                        tsbSave.Enabled = false;
                        tsbDev.Enabled = true;
                        tbObserv.ReadOnly = true;
                        gbDatPers.Enabled = true;
                        //gbObserv.Enabled = false;
                        tbMarcaVehiculo.ReadOnly = true;
                        tbKiloS.ReadOnly = true;
                        tbPlaca.ReadOnly = true;
                        BUSRegistroVehiculo objBUSRLl = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                        RegistroVehiculo regVehiculo = objBUSRLl.get(vehiculo.ultId);
                        id = vehiculo.ultId;
                        tbMarcaVehiculo.Text = regVehiculo.vehiculo.marca;
                        if (regVehiculo.vehiculo.llantaRpto == 1)  {
                            chbLlantaRpto.Checked = true;
                        }
                        else
                        {
                            chbLlantaRpto.Checked = false;
                        }
                        if (regVehiculo.vehiculo.escaleraGrande == 1)
                        {
                            chbEscaleraG.Checked = true;
                        }
                        else
                        {
                            chbEscaleraG.Checked = false;
                        }
                        if (regVehiculo.vehiculo.escaleraChica == 1)
                        {
                            chbEscaleraC.Checked = true;
                        }
                        else
                        {
                            chbEscaleraC.Checked = false;
                        }
                        tbKiloS.Text = regVehiculo.vehiculo.ultimoKilometraje.ToString();
                        tbNumDoc.Text = regVehiculo.persona.numDoc;
                        tbApePat.Text = regVehiculo.persona.apePat;
                        tbApeMat.Text = regVehiculo.persona.apeMat;
                        tbNombres.Text = regVehiculo.persona.nombres;
                        tbObserv.Text = regVehiculo.observaciones;
                        cbEmpresa.Text = regVehiculo.persona.empresa;
                        tbKiloE.Visible = true;
                        lbKiloI.Visible = true;
                        
                        tbNumSerie1.Text = regVehiculo.equipoSalida1.numSerie;
                        cbMarca1.Text = regVehiculo.equipoSalida1.marca;

                        tbNumSerie2.Text = regVehiculo.equipoSalida2.numSerie;
                        cbMarca2.Text = regVehiculo.equipoSalida2.marca;

                        tbKiloE.Focus();
                    }
                    else
                    {
                        //Salida de vehiculo corporativo (propio)
                        tsbSave.Enabled = true;
                        tsbDev.Enabled = false;
                        gbDatPers.Enabled = true;
                        tbObservRev.ReadOnly = true;                        
                        tbMarcaVehiculo.ReadOnly = false;
                        tbKiloE.ReadOnly = true;
                        tbObserv.ReadOnly = false;
                        if (vehiculo.tipo.Equals("C"))
                            tbKiloS.Focus();
                    }

                }
                else
                {
                    //Particular o Visita
                    tsbDev.Text = "Salida";
                    chbParticular.Checked = true;
                    tbPlaca.Text = vehiculo.placa;
                    chbEscaleraC.Visible = false;
                    chbEscaleraG.Visible = false;
                    chbLlantaRpto.Visible = false;
                    tbKiloS.Text = "0";
                    lbKiloS.Visible = false;
                    tbKiloS.Visible = false;
                    if (vehiculo.tipo.Equals("P"))
                        rbParticular.Checked = true;
                    else
                        rbVisita.Checked = true;
                    tbKiloE.Text = "0";
                    lbKiloI.Visible = false;
                    tbKiloE.Visible = false;

                    tbNumSerie1.Text = vehiculo.equipoIn1.numSerie;
                    tbNumSerie2.Text = vehiculo.equipoIn2.numSerie;


                    if(vehiculo.estado.Equals("S"))
                    {
                        //Vehiculo ingresando
                        tsbSave.Enabled = true;
                        tsbDev.Enabled = false;
                        tbObservRev.ReadOnly = true;
                        tbObserv.ReadOnly = false;
                        if (tbNumDoc.Text.Trim().Equals(""))
                        {
                            tbNumDoc.Focus();
                        }
                        else
                        {
                            tbNumSerie1.Focus();
                            tbNumSerie1.SelectionStart = 0;
                            tbNumSerie1.SelectionLength = tbNumSerie1.Text.Length;
                        }
                    }else
                    {
                        //Vehiculo saliendo
                        groupBox1.Enabled = false;
                        gbDatPers.Enabled = false;
                        gbEquipo1.Enabled = false;
                        //groupBox3.Enabled = false;
                        tsbSave.Enabled = false;
                        tsbDev.Enabled = true;
                        tbObserv.ReadOnly = true;
                        tbObservRev.ReadOnly = false;
                        BUSRegistroVehiculo objBUSRLl = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                        RegistroVehiculo regVehiculo = objBUSRLl.get(vehiculo.ultId);
                        id = vehiculo.ultId;
                        tbMarcaVehiculo.Text = regVehiculo.vehiculo.marca;
                        tbObserv.Text = regVehiculo.observaciones;
                        gbEquipo1.Enabled = true;
                        //tbNumSerie.Enabled = true;
                        tbNumSerie1.Focus();
                        tbNumSerie1.SelectionStart = 0;
                        tbNumSerie1.SelectionLength = tbNumSerie1.Text.Length;
                    }

                } 
            }
            else
            {
                //Si vehículo no existe en BD
                tbObservRev.ReadOnly = true;
                if (tbCodigo.Text.StartsWith("P") || tbCodigo.Text.StartsWith("V"))
                {
                    chbParticular.Checked = true;

                    if (tbCodigo.Text.StartsWith("P"))
                        rbParticular.Checked = true;
                    else
                        rbVisita.Checked = true;

                    tbKiloE.ReadOnly = true;
                    tbKiloS.ReadOnly = true;
                    tbPlaca.Text = tbCodigo.Text.Substring(1);
                    tbMarcaVehiculo.Focus();
                }  else if (tbCodigo.Text.StartsWith("C"))
                {
                    //Habilitamos el boton de Inventario solo si es primera vez
                    tsbInv.Enabled = true; 
                    rbCorporativo.Checked = true;
                    tbPlaca.Text = tbCodigo.Text.Substring(1);
                    chbParticular.Checked = true;
                    chbParticular.Checked = false;
                    tbMarcaVehiculo.Focus();
                    tbKiloE.ReadOnly = true;
                    tbKiloS.ReadOnly = false;
                }
                 
            }

        }

        private void tbDescripVehiculo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                if(chbParticular.Checked){
                    tbNumDoc.Focus();
                }else{
                    SendKeys.Send("{TAB}");
                }
        }

        private void frmIngresoVehiculo_Load(object sender, EventArgs e)
        {
            llenaElementos("empresa", cbEmpresa);
            llenaElementos("marca", cbMarca1);
            llenaElementos("marca", cbMarca2);
            //llenaElementos("modelo", cbModelo1);
        }
        private void llenaElementos(String elemento, ComboBox cb)
        {
            BUSBase objBUS = new BUSBase(Constantes.CADENA_BD);
            List<String> elems = objBUS.getElementos(elemento);
            AutoCompleteStringCollection data = new AutoCompleteStringCollection();
            foreach (String cadena in elems)
            {
                data.Add(cadena);
            }
            cb.AutoCompleteCustomSource = data;
        }

        private void tbNumDoc_Validated(object sender, EventArgs e)
        {
            tbNumDoc.Text = tbNumDoc.Text.Replace("'", "");
            buscar();
        }
        private void buscar()
        {
            BUSPersona objBUS = new BUSPersona(Constantes.CADENA_BD);
            BUSEquipo objBUSEqp = new BUSEquipo(Constantes.CADENA_BD);
            Persona persona = objBUS.get(tbNumDoc.Text.Trim());
            if (persona != null)
            {
                tbApePat.Text = persona.apePat;
                tbApeMat.Text = persona.apeMat;
                tbNombres.Text = persona.nombres;
                cbEmpresa.Text = persona.empresa;
            }
            else
            {
                tbApePat.Text = "";
                tbApeMat.Text = "";
                tbNombres.Text = "";
                cbEmpresa.Text = "";
            }

        }

        private void tbNumDoc_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbKiloS_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }
        private void grabaInventario()
        {
            int kilometrajeIngreso = 0;
            try
            {
                kilometrajeIngreso = Convert.ToInt32(tbKiloE.Text.Replace(" ",""));
            }
            catch (FormatException ex)
            {
                tbKiloE.Focus();
                MessageBox.Show("Kilometraje de ingreso no válido", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (MessageBox.Show("Confirma ingreso de vehículo placa  " + tbPlaca.Text
                , "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Vehiculo vehiculo = new Vehiculo();
                vehiculo.codigo = tbCodigo.Text.Trim();
                vehiculo.placa = tbPlaca.Text;
                vehiculo.marca = tbMarcaVehiculo.Text;
                
                //Vehiculo Empresa
                if (chbLlantaRpto.Checked)
                    vehiculo.llantaRpto = 1;
                if (chbEscaleraG.Checked)
                    vehiculo.escaleraGrande = 1;
                if (chbEscaleraC.Checked)
                    vehiculo.escaleraChica = 1;
                vehiculo.ultimoKilometraje = Int32.Parse(tbKiloE.Text);
                vehiculo.estado = "I";
                vehiculo.tipo = "C";
            
                vehiculo.equipoIn1.numSerie = tbNumSerie1.Text;
                if (!vehiculo.equipoIn1.numSerie.Equals(""))
                {
                    vehiculo.equipoIn1.tipo = "LAPTOP";
                    vehiculo.equipoIn1.marca = cbMarca1.Text;
                    vehiculo.equipoIn1.modelo = "";
                }
                else if (!vehiculo.equipoIn1.numSerie.Equals("NOREG"))
                {
                    vehiculo.equipoIn1.tipo = "";
                    vehiculo.equipoIn1.marca = "";
                    vehiculo.equipoIn1.modelo = "";
                }
                vehiculo.equipoIn2.numSerie = tbNumSerie2.Text;
                if (!vehiculo.equipoIn2.numSerie.Equals(""))
                {
                    vehiculo.equipoIn2.tipo = "LAPTOP";
                    vehiculo.equipoIn2.marca = cbMarca2.Text;
                    vehiculo.equipoIn2.modelo = "";
                }

                vehiculo.codLocal = Constantes.LOCAL.id;
                vehiculo.numDoc = tbNumDoc.Text;
                Persona persona = new Persona();
                persona.numDoc = tbNumDoc.Text;
                persona.apePat = tbApePat.Text;
                persona.apeMat = tbApeMat.Text;
                persona.nombres = tbNombres.Text;
                persona.empresa = cbEmpresa.Text;
                persona.numMovil = "";
                persona.cargo = "";
                persona.visitado = new Visitado();
                persona.visitado.area = "";
                persona.visitado.nombre = "";
                persona.visitado.ubicacion = "";

                BUSRegistroVehiculo busVehiculo = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                RegistroVehiculo reg = new RegistroVehiculo();
                reg.persona = persona;
                reg.vehiculo = vehiculo;
                reg.idLocal = Constantes.LOCAL.id;
                reg.observacionesRev  = tbObservRev.Text;

                busVehiculo.grabInventario (reg, Constantes.USUARIO);
                MessageBox.Show("Se grabó correctamente", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
        }
        private void tsbSave_Click(object sender, EventArgs e)
        {
                    
            try
            {
                if (datosCompletos())
                {
                    if (tsbInv.Checked)
                    {
                        if (!chbParticular.Checked)
                        {
                            grabaInventario();
                        }
                    }
                    else
                    {
                        grabar();
                    }
                }
            }
            catch (BUSException ex)
            {
                MessageBox.Show(ex.Message , Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

        }
        public bool datosCompletos()
        {
            if (tbCodigo.Text.Trim() == "")
            {
                tbPlaca.Focus();
                throw new BUSException("Debe ingresar el código del vehículo");
            }
            if(tbPlaca.Text.Trim()=="")
            {
                tbPlaca.Focus();
                throw new BUSException("Debe ingresar la placa del vehículo");
            }
            
            if (!chbParticular.Checked)
            {
                try
                {
                    if (tsbInv.Checked)
                    {
                        int kilometrajeEntrada = Convert.ToInt32(tbKiloE.Text);
                    }
                    else
                    {
                        int kilometrajeSalida = Convert.ToInt32(tbKiloS.Text);
                    }
                }
                catch (FormatException ex)
                {
                    string mensaje = "";
                    if (tsbInv.Checked)
                    {
                        mensaje ="Kilometraje de ingreso no válido";
                        tbKiloE.Focus() ;
                    }
                    else
                    {
                        mensaje ="Kilometraje de salida no válido";
                        tbKiloS.Focus();
                    }
                    
                    throw new BUSException(mensaje );
                }
            }
           
            if (tbNumDoc.Text.Trim() == "")
            {
                tbNumDoc.Focus();
                throw new BUSException("Debe ingresar Nro de Documento de conductor");
            }
            if (tbApePat.Text.Trim() == "")
            {
                tbApePat.Focus();
                throw new BUSException("Debe ingresar apellido de conductor");
            }
            if (tbNombres.Text.Trim() == "")
            {
                tbNombres.Focus();
                throw new BUSException("Debe ingresar nombre de conductor");
            }
            return true;
        }
        public void grabar()
        {
            Vehiculo vehiculo = new Vehiculo();
            vehiculo.codigo = tbCodigo.Text.Trim();
            vehiculo.placa = tbPlaca.Text;
            vehiculo.marca = tbMarcaVehiculo.Text;
            if (!chbParticular.Checked)
            {
                //Vehiculo Empresa
                if (chbLlantaRpto.Checked)
                    vehiculo.llantaRpto = 1;
                if (chbEscaleraG.Checked)
                    vehiculo.escaleraGrande = 1;
                if (chbEscaleraC.Checked)
                    vehiculo.escaleraChica = 1;
                vehiculo.ultimoKilometraje = Int32.Parse(tbKiloS.Text);
                vehiculo.estado = "S";
                vehiculo.tipo = "C";
            }
            vehiculo.equipoIn1.numSerie = tbNumSerie1.Text;
            if (!vehiculo.equipoIn1.numSerie.Equals(""))
            {
                vehiculo.equipoIn1.tipo = "LAPTOP";
                vehiculo.equipoIn1.marca = cbMarca1.Text;
                vehiculo.equipoIn1.modelo = "";
            }
            else if (!vehiculo.equipoIn1.numSerie.Equals("NOREG"))
            {
                vehiculo.equipoIn1.tipo = "";
                vehiculo.equipoIn1.marca = "";
                vehiculo.equipoIn1.modelo = "";
            }
            vehiculo.equipoIn2.numSerie = tbNumSerie2.Text;
            if (!vehiculo.equipoIn2.numSerie.Equals(""))
            {
                vehiculo.equipoIn2.tipo = "LAPTOP";
                vehiculo.equipoIn2.marca = cbMarca2.Text;
                vehiculo.equipoIn2.modelo = "";
            }
            
            //vehiculo.propio=!chbParticular.Checked;
            if (rbCorporativo.Checked) vehiculo.tipo = "C";
            if (rbParticular.Checked) vehiculo.tipo = "P";
            if (rbVisita.Checked) vehiculo.tipo = "V";
            vehiculo.codLocal = Constantes.LOCAL.id;
            vehiculo.numDoc = tbNumDoc.Text;
            //vehiculo.equipo.numSerie = tbNumSerie.Text;
            Persona persona = new Persona();
            persona.numDoc = tbNumDoc.Text;
            persona.apePat = tbApePat.Text;
            persona.apeMat = tbApeMat.Text;
            persona.nombres = tbNombres.Text;
            persona.empresa = cbEmpresa.Text;
            persona.numMovil = "";
            persona.cargo = "";
            persona.visitado = new Visitado();
            persona.visitado.area = "";
            persona.visitado.nombre = "";
            persona.visitado.ubicacion = "";

            BUSRegistroVehiculo busVehiculo = new BUSRegistroVehiculo(Constantes.CADENA_BD);
            RegistroVehiculo reg = new RegistroVehiculo();
            reg.persona = persona;
            reg.vehiculo = vehiculo;
            reg.idLocal = Constantes.LOCAL.id;
            reg.observaciones = tbObserv.Text;

            busVehiculo.grabar(reg, Constantes.USUARIO);
            MessageBox.Show("Se grabó correctamente", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Close();
        }

        private void tbApePat_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbApeMat_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbNombres_KeyUp(object sender, KeyEventArgs e)
        {

        }

        private void tbNombres_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void cbEmpresa_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                //if (chbParticular.Checked)
                //{
                    tbNumSerie1.Focus();
                //}
                //else
                //{
                  //  SendKeys.Send("{TAB}");
                }
        }

        private void cbEmpresa_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
            else
                e.KeyChar = char.ToUpper(e.KeyChar);
        }

        private void tsbDev_Click(object sender, EventArgs e)
        {
            if (!chbParticular.Checked)
            {
                //Vehiculo Propio o corporativo
                int kilometrajeIngreso = 0;
                try
                {
                    kilometrajeIngreso = Convert.ToInt32(tbKiloE.Text.Replace(" ",""));
                }
                catch (FormatException ex)
                {
                    tbKiloE.Focus();
                    MessageBox.Show("Kilometraje de ingreso no válido", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int kilometrajeSalida = 0;
                try
                {
                    kilometrajeSalida = Convert.ToInt32(tbKiloS.Text);
                }
                catch (FormatException ex)
                {
                    //tbKiloS.Focus();
                    MessageBox.Show("Kilometraje de salida no válido", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (kilometrajeIngreso < kilometrajeSalida)
                {
                    MessageBox.Show("Kilometraje de ingreso no puede ser menor a kilometraje de salida", Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (MessageBox.Show("Confirma ingreso de vehículo placa  " + tbPlaca.Text
                    , "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    BUSRegistroVehiculo objBUS = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                    RegistroVehiculo elemento = new RegistroVehiculo();
                    elemento.id = id;
                    elemento.vehiculo.placa = tbPlaca.Text;
                    elemento.kilometrajeIngreso = kilometrajeIngreso;

                    if (chbLlantaRpto.Checked) elemento.vehiculo.llantaRpto = 1;
                    if (chbEscaleraG.Checked) elemento.vehiculo.escaleraGrande = 1;
                    if (chbEscaleraC.Checked) elemento.vehiculo.escaleraChica = 1;

                    elemento.persona.numDoc = tbNumDoc.Text;
                    elemento.persona.nombres = tbNombres.Text;
                    elemento.persona.apePat = tbApePat.Text;
                    elemento.persona.apeMat = tbApeMat.Text;
                    elemento.persona.empresa = cbEmpresa.Text;

                    elemento.persona.numMovil = "";
                    elemento.persona.cargo = "";
                    elemento.persona.visitado = new Visitado();
                    elemento.persona.visitado.area = "";
                    elemento.persona.visitado.nombre = "";
                    elemento.persona.visitado.ubicacion = "";

                    elemento.observacionesRev = tbObservRev.Text;

                    elemento.vehiculo.equipoIn1.numSerie = tbNumSerie1.Text;
                    if (!elemento.vehiculo.equipoIn1.numSerie.Equals(""))
                    {
                        elemento.vehiculo.equipoIn1.tipo = "LAPTOP";
                        elemento.vehiculo.equipoIn1.marca = cbMarca1.Text;
                        elemento.vehiculo.equipoIn1.modelo = "";
                    }
                    else if (!elemento.vehiculo.equipoIn1.numSerie.Equals("NOREG"))
                    {
                        elemento.vehiculo.equipoIn1.tipo = "";
                        elemento.vehiculo.equipoIn1.marca = "";
                        elemento.vehiculo.equipoIn1.modelo = "";
                    }
                    elemento.vehiculo.equipoIn2.numSerie = tbNumSerie2.Text;
                    if (!elemento.vehiculo.equipoIn2.numSerie.Equals(""))
                    {
                        elemento.vehiculo.equipoIn2.tipo = "LAPTOP";
                        elemento.vehiculo.equipoIn2.marca = cbMarca2.Text;
                        elemento.vehiculo.equipoIn2.modelo = "";
                    }
                    else if (!elemento.vehiculo.equipoIn2.numSerie.Equals("NOREG"))
                    {
                        elemento.vehiculo.equipoIn2.tipo = "";
                        elemento.vehiculo.equipoIn2.marca = "";
                        elemento.vehiculo.equipoIn2.modelo = "";
                    }


                    objBUS.ingresoCorporativo(Constantes.USUARIO.idLogin, elemento);
                    this.Close();
                }
            }
            else
            {
                if (MessageBox.Show("Confirma salida de vehículo placa  " + tbPlaca.Text
                    , "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    Equipo equipo1 = new Equipo();
                    equipo1.numSerie = tbNumSerie1.Text;
                    equipo1.tipo = "LAPTOP";
                    equipo1.marca = cbMarca1.Text;
                    equipo1.modelo = "";
                    Equipo equipo2 = new Equipo();
                    equipo2.numSerie = tbNumSerie2.Text;
                    equipo2.tipo = "LAPTOP";
                    equipo2.marca = cbMarca2.Text;
                    equipo2.modelo = "";
                    
                    BUSRegistroVehiculo objBUS = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                    objBUS.salidaParticular(id, Constantes.USUARIO.idLogin,tbCodigo.Text,equipo1, equipo2, tbObservRev.Text);
                    this.Close();
                }
            }
               
        }

        private void frmIngresoVehiculo_Shown(object sender, EventArgs e)
        {
                    
            tbCodigo.Focus();
            if (tbCodigo.Text.Trim() != "")
            {
                buscarVehiculo();
            }
        }

        private void tbCodigo_Validated(object sender, EventArgs e)
        {
            //buscarVehiculo();
        }

        private void tbCodigo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbKiloS_Validated(object sender, EventArgs e)
        {
            if (tsbInv.Checked)
                tbKiloE.Focus();
            else
                tbNumDoc.Focus();

        }

        private void cbMarca_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                tbNumSerie2.Focus();
        }

        private void cbMarca_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar = char.ToUpper(e.KeyChar);
        }

        private void cbModelo_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar = char.ToUpper(e.KeyChar);
        }

        private void cbModelo_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {

                //SendKeys.Send("{TAB}");
                tbObserv.Focus();
            }
        }

        private void tbNumSerie_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbNumSerie_Validated(object sender, EventArgs e)
        {
            if (!tbNumSerie1.Text.Trim().Equals(""))
            {
                //Si se ingresa el mismo código del vehículo no registra LAPTOP
                if (tbNumSerie1.Text.Trim().Equals(tbCodigo.Text.Trim()))
                {
                    tbNumSerie1.Text = "";
                    cbMarca1.Text = "";
                    if (!tsbDev.Enabled)
                    {
                        try
                        {
                            if (datosCompletos())
                            {
                                grabar();
                            }
                        }
                        catch (BUSException ex)
                        {
                            MessageBox.Show(ex.Message, Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                    else
                    {
                        Equipo equipo1 = new Equipo();
                        equipo1.numSerie = tbNumSerie1.Text;
                        equipo1.tipo = "LAPTOP";
                        equipo1.marca = cbMarca1.Text;
                        //equipo1.modelo = cbModelo1.Text;

                        //Equipo equipo2 = new Equipo();
                        //equipo2.numSerie = tbNumSerie2.Text;
                        //equipo2.tipo = "LAPTOP";
                        //equipo2.marca = cbMarca2.Text;
                        //equipo2.modelo = cbModelo2.Text;

                        //BUSRegistroVehiculo objBUS = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                        //objBUS.salidaParticular(id, Constantes.USUARIO.idLogin, tbCodigo.Text,equipo1, equipo2);
                        //this.Close();
                    }
                }
                else  //Si se ingresa NOREG
                    if (tbNumSerie1.Text.Trim().Equals("NOREG"))
                    {
                        tbNumSerie1.Text = "NOREG";
                        cbMarca1.Text = "";
                        //cbModelo1.Text = "";
                        if (!tsbDev.Enabled)
                        {
                            try
                            {
                                if (datosCompletos())
                                {
                                    grabar();
                                }
                            }
                            catch (BUSException ex)
                            {
                                MessageBox.Show(ex.Message, Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                        else
                        {
                            Equipo equipo1 = new Equipo();
                            equipo1.numSerie = tbNumSerie1.Text;
                            equipo1.tipo = "";
                            equipo1.marca = "";
                            equipo1.modelo = "";

                            //Equipo equipo2 = new Equipo();
                            //equipo2.numSerie = tbNumSerie2.Text;
                            //equipo2.tipo = "";
                            //equipo2.marca = "";
                            //equipo2.modelo = "";

                            //BUSRegistroVehiculo objBUS = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                            //objBUS.salidaParticular(id, Constantes.USUARIO.idLogin, tbCodigo.Text, equipo1, equipo2);
                            //this.Close();
                        }
                    }
                else
                {
                    BUSEquipo objBUS = new BUSEquipo(Constantes.CADENA_BD);
                    Equipo elemento = objBUS.get(tbNumSerie1.Text.Trim());
                    if (elemento != null)
                    {
                        //cbTipo.Text = elemento.tipo;
                        cbMarca1.Text = elemento.marca;
                        //cbModelo1.Text = elemento.modelo;
                        if (!tsbDev.Enabled)
                        {
                            //try
                            //{
                            //    if (datosCompletos())
                            //    {
                            //        grabar();
                            //    }
                            //}
                            //catch (BUSException ex)
                            //{
                            //    MessageBox.Show(ex.Message, Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            //}
                        }
                        else
                        {
                            Equipo equipo1 = new Equipo();
                            equipo1.numSerie = tbNumSerie1.Text;
                            equipo1.tipo = "LAPTOP";
                            equipo1.marca = cbMarca1.Text;
                            //equipo1.modelo = cbModelo1.Text;

                            Equipo equipo2 = new Equipo();
                            equipo2.numSerie = tbNumSerie2.Text;
                            equipo2.tipo = "LAPTOP";
                            equipo2.marca = cbMarca2.Text;
                            //equipo2.modelo = cbModelo2.Text;

                            //BUSRegistroVehiculo objBUS1 = new BUSRegistroVehiculo(Constantes.CADENA_BD);
                            //objBUS1.salidaParticular(id, Constantes.USUARIO.idLogin, tbCodigo.Text,equipo1, equipo2);
                            //this.Close();
                        }
                    }
                }
               
              
            }
            else
            {
                cbMarca1.Text = "";
                //cbModelo1.Text = "";
            }
        }

        private void cbParticular_CheckedChanged(object sender, EventArgs e)
        {
            chbEscaleraC.Visible = !chbParticular.Checked;
            chbEscaleraG.Visible = !chbParticular.Checked;
            chbLlantaRpto.Visible = !chbParticular.Checked;
            
            chbEscaleraC.Enabled = !chbParticular.Checked; 
            chbEscaleraG.Enabled = !chbParticular.Checked;
            chbLlantaRpto.Enabled = !chbParticular.Checked;
            
            if (chbParticular.Checked)
            {
                groupBox1.Height = 117;
                lbObserv.Text = "Observ. Ent.";
                lbObservOut.Text = "Observ. Sal.";
                

            }
            else
            {
                groupBox1.Height = 201;
                tsbDev.Text = "Ingreso";
                lbObserv.Text = "Observ. Sal.";
                lbObservOut.Text = "Observ. Ent.";
            }
            gbDatPers.Top = groupBox1.Height + 35;
            gbEquipo1.Top = gbDatPers.Top + gbDatPers.Height + 2;
            gbEquipo2.Top = gbEquipo1.Top + gbEquipo1.Height + 2;
            gbObserv.Top = gbEquipo2.Top + gbEquipo2.Height + 2;

        }

        private void rbParticular_CheckedChanged(object sender, EventArgs e)
        {
            chbParticular.Checked = true;
        }

        private void rbVisita_CheckedChanged(object sender, EventArgs e)
        {
            chbParticular.Checked = true;
        }

        private void rbCorporativo_CheckedChanged(object sender, EventArgs e)
        {
            chbParticular.Checked = false;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbMarca2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                if (rbParticular.Checked || rbVisita.Checked)
                {
                    if (tsbDev.Enabled)
                        tbObservRev.Focus();
                    else
                        tbObserv.Focus();
                }
                else if (tsbInv.Checked)
                    tbObservRev.Focus();
                else
                    tbObserv.Focus();
        }

        private void cbMarca2_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar = char.ToUpper(e.KeyChar);
        }

        private void tbNumSerie2_Validated(object sender, EventArgs e)
        {
            BUSEquipo objBUS = new BUSEquipo(Constantes.CADENA_BD);
            Equipo elemento = objBUS.get(tbNumSerie2.Text.Trim());
            if (elemento != null)
            {
                cbMarca2.Text = elemento.marca;
                //cbModelo1.Text = elemento.modelo;
            }

        }

        private void tbNumSerie2_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void tbKiloE_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                if (tsbInv.Checked)
                    tbNumDoc.Focus();
                else
                    tbNumSerie1.Focus();
        }

        private void tsbInv_Click(object sender, EventArgs e)
        {
            tbKiloE.ReadOnly = !tsbInv.Checked;
            tbKiloS.ReadOnly = tsbInv.Checked;
            tbObserv.ReadOnly = tsbInv.Checked;
            tbObservRev.ReadOnly = !tsbInv.Checked;
            if (tsbInv.Checked)
            {
                //tbKiloE.Focus();
                tbKiloS.Text = "";
                tbObserv.Text = "";
            }
            else
            {
                //tbKiloS.Focus();
                tbKiloE.Text = "";
                tbObservRev.Text = "";
                
            }
            tbMarcaVehiculo.Focus();
        }

    }
}
